# test02_str.py
# 编写一个程序，实现创建用户的功能
# 提示用户输入 用户名     input("用户名")
# 随机生成 8位密码 (导入之前的模块文件)
# 创建用户并设置密码  useradd xxx   echo 123456 | passwd --stdin xxx
# 将用户相关信息(username:xxx  passwd:xxx) 写入指定文件
# 思路:定义函数adduser(), 创建用户，给用户设置密码，并保存用户信息到一个文件中
# 1.检查用户是否存在 id xxx,存在打印已存在;  用户不存在，使用run()创建用户，非交互式给用户设置密码
# 2.以追加的方式(mode="a")打开文件(/opt/user.txt),写入用户信息
# username:zhangsan  passwd:123
import randpass2
import subprocess
def adduser():
    username = input("用户名:")
    result = subprocess.run("id %s &> /dev/null"%username,shell=True)
    if result.returncode == 0:  # id指令执行成功，用户存在，不能创建
        print("用户已存在")
    else:  # id指令执行失败，用户不存在，能创建用户
        subprocess.run("useradd %s" % username, shell=True)
        pwd = randpass2.randpass()  # 调用randpass2中的ranndpass函数
        subprocess.run("echo %s|passwd --stdin %s"%(pwd,username), shell=True)
        with open("/opt/user.txt", mode="a") as fw:  # 写入文件
            fw.write("username:%s  passwd:%s\n"%(username,pwd))
if __name__ == '__main__':
    adduser()  # 调用函数

# 老师怎么培养思维。能看的懂，但是不会写
# 下软件 -> 该配置 -> 启服务



